package tour.board.dao;

import java.sql.SQLException;
import java.util.ArrayList;

import tour.board.to.EpBoard;
import tour.board.to.ReEpBoard;
import tour.board.to.RecommendTO;



public interface EpBoardDAO {

	//board 테이블에 내용을 하나 insert
			public abstract Object insertContentForNewCount(EpBoard epBoard)
					throws SQLException;

			//board 테이블에 답변글 하나 insert 처리
			public abstract Object insertContentForReply(EpBoard epBoard)
					throws SQLException;

			/**
			 * 매개변수로 받은 페이지에 보여줄 글 목록 조회
			 * @param page 글을 조회할 페이지
			 * @return ArrayList<Board> 조회한 글 목록
			 * @throws SQLException
			 */
			public abstract ArrayList<EpBoard> selectBoardListByPage(int page)
					throws SQLException;

			//페이징 없이 전체 조회
			public abstract ArrayList<EpBoard> selectBoardAllList() throws SQLException;

			//총 게시물 수를 return 하는 메소드
			public abstract int selectTotalContent() throws SQLException;

			//조회수를 1개 update 처리하는 메소드 (글 조회시 호출)
			public abstract int updateViewCount(int no) throws SQLException;

			//글번호로 게시물 조회하는 메소드
			public abstract EpBoard selectContentByNO(int no) throws SQLException;

			//게시물 정보를 수정하는 메소드
			public abstract int updateContent(EpBoard epBoard) throws SQLException;

			//글번호로 게시물을 삭제하는 메소드
			public abstract int deleteContentByNO(int no) throws SQLException;

			//답변 처리시 restep값 update하는 메소드
			public abstract int updateRestep(int refamily, int restep)
					throws SQLException;

			public abstract ArrayList replyList();

			public abstract void addReply(ReEpBoard reEpBoard);

			public abstract ArrayList getReplyByNo(int no);
			
			//추천 했는지 check
			public abstract String recommend(RecommendTO rto) throws SQLException;
			
			//추천 update
			public abstract void updateCommendCount(int no) throws SQLException;
			
			public abstract void insertRecommendInfo(RecommendTO rto) throws SQLException;

			public abstract ArrayList mainList();

			public abstract ArrayList findWriter(String find);

			public abstract ArrayList findTitle(String find);
}
